package com.lhh.myspringboot.design.mode.buildermodel;

import java.util.ArrayList;

/**
 *  抽象汽车组装者
 *
 *  想想我们的需求，汽车的动作执行顺序是要能够随意调整的。我们只满足了一个需求，还有下一个需求呀，
 *  然后是第二个宝马模型，只要启动、停止，其他的什么都不要；
 *  第三个模型，先喇叭，然后启动，然后停止；
 *  第四个……直到把你逼疯为止，那怎么办？我们就一个一个地来写场景类满足吗？
 *  不可能了，那我们要想办法来解决这个问题，
 *  有了！我们为每种模型产品模型定义一个建造者，你要啥顺序直接告诉建造者，由建造者来建造，
 *  这里先将建造者抽象，具体的建造者为抽象建造者的实现类
 */
public abstract class CarBuilder {
    //建造一个模型，你要给我一个顺序要求，就是组装顺序
    public abstract void setSequence(ArrayList<String> sequence);
    //设置完毕顺序后，就可以直接拿到这个车辆模型
    public abstract CarModel getCarModel();
}
